The present invention relates to a control method for computers, and more particularly to a method of running a plurality of operating systems (OSs) on a single computer.
A general computer runs only a single OS which manages computer resources such as a processor, a memory and a secondary storage and performs resource scheduling in order to realize an efficient operation of the computer.
There are various types of OSs, some excellent in batch processing, some excellent in time sharing system (TSS), and some excellent in graphical user interface (GUI).
There are needs of using a plurality of OSs on a single computer. For example, a mainframe is desired to operate both OS for executing practical online transaction processings and OS for research and development. There is also a requirement for running both OS having comparative GUI and OS excellent in real time.
However, each OS is assumed to manage computer resources by itself and a concurrent presence of a plurality of OSs is impossible unless some measure is incorporated.
As a measure for operating a plurality of OSs on a single computer, a virtual machine system realized by a mainframe is known (refer to “Modern Operating Systems”: Andrew S. Tanenbaum, Prentice Hall, 1992 (pp. 21 to 22). In a virtual machine system, a virtual machine control program dominantly manages all hardware resources, and virtualizes these resources to configure the virtual machine system. A controller of a virtual machine system virtualizes physical memories, input/output (I/O) devices, external interrupts and the like.
For example, each divided physical memory is handled by each virtual machine as if it is a memory starting form the address “0”. Device numbers identifying I/O devices are similarly virtualized. In addition, a magnetic disk is also virtualized by dividing its memory area.
Each OS is scheduled by the control program so that OS runs on a virtual machine configured by the control program. However, in a virtual machine system of a mainframe, since computer resources are completely virtualized and divided, the controller of a virtual machine becomes complicated.
Setting a control register from an OS running a virtual machine and a privilege instruction such as an I/O instruction issued by the OS, are required to be emulated by a virtual machine control program if there is no specific hardware support. A problem of a large overhead therefore occurs. In practice, this overhead is reduced in a mainframe which configures virtual machines, by adding hardware realizing processor functions and micro codes specific to the virtual machine.
The virtual machine system aims at completely virtualizing computer resources, so that the system becomes complicated. Furthermore, to realize a high performance of a virtual machine, specific hardware is required.
A mircokernel is known as techniques for providing a single computer with interface with a plurality of OSs (refer to “Modern Operating Systems”: Andrew S. Tanenbaum, Prentice Hall, 1922 (pp. 637 to 641)). If a microkernel is used, an operating system server is configured on the microkernel, the server providing an OS function transparent to a user which utilizes computer resources via the server. If each OS is provided with such a server, a user is provided with various OS environments.
With the microkernel system, however, it is necessary to newly configure an operating system server compatible with a microkernel. In many cases, currently existing OSs are modified so as to run on the microkernel. The core portion of each OS such as scheduling and memory management is required to be modified. There are many portions to be modified. In addition, these modified portions are related also to the main part of each OS, so that the modification work is complicated and difficult.
Still further, although the operating system server utilizes services of the microkernel, this operation is not used by a general OS so that an overhead increases and the system performance is degraded.